package com.example.demo2_review.design_pattern.concurrency_patterns.producer_consumer_Pattern;

import com.example.common.utils.thread_pool.TaskExecutorUtil;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

/**
 * @Author zwp14
 * @create 2024/6/25 1:28
 * @description 并发型模式:生产者-消费者模式
 * 生产者-消费者模式通过解耦生产者和消费者来提高系统的并发性能和可维护性。
 *
 * 应用场景：
 * 当有多个线程需要协调工作来完成任务时。
 * 当任务分为生产者和消费者角色，并且需要调节它们之间的工作时。
 */
public class ProducerConsumerPattern {
    public static void main(String[] args) {
        //限定库存容积
        Buffer1 buffer1 = new Buffer1(2);
        ThreadPoolTaskExecutor taskExecutor = TaskExecutorUtil.getTaskExecutor("zwp-create-thread-service-", 2, 2, 2);
        taskExecutor.execute(new Producer(buffer1));
        taskExecutor.execute(new Consumer(buffer1));
    }
}
